package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.FlowSpecifyTheNodeHandlerTaskQueryInfo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.NextNodeWithGatewayParamKey;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.task.BaseTaskVo;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.task.SequentNodeCandidateConfigQueryVo;

import java.util.List;

public interface SequentNodeCandidateConfigService {

    /**
     * 获取后续节点配置的处理人
     * @param sequentNodeCandidateConfigQueryVo
     * @return
     */
    public List<FlowSpecifyTheNodeHandlerTaskQueryInfo> getSequentNodeCandidateConfig(SequentNodeCandidateConfigQueryVo sequentNodeCandidateConfigQueryVo);

    /**
     * 获取网关后的节点，同时返回网关线上的参数
     * @param baseTaskVo
     * @return
     */
    public List<NextNodeWithGatewayParamKey> getNextNodeByGatewayKey(BaseTaskVo baseTaskVo) throws Exception;

    /**
     * 获取节点后所有的分支节点，同时返回网关线上的参数
     * @param baseTaskVo
     * @return
     */
    public List<NextNodeWithGatewayParamKey> getNextNodesByNodeId(BaseTaskVo baseTaskVo) throws Exception;
}
